#!/bin/bash

# 服务器恢复和清理脚本
# 用于清理卡死的进程和释放资源

echo "========================================"
echo "服务器恢复和清理"
echo "========================================"

# 1. 检查系统资源
echo "1. 检查系统资源使用情况..."
echo "内存使用:"
free -h
echo ""
echo "CPU 使用:"
top -bn1 | head -5
echo ""

# 2. 清理 Docker 资源
echo "2. 清理 Docker 资源..."
# 停止所有运行中的容器（除了关键服务）
sudo docker ps --format "{{.Names}}" | grep -vE "jenkins|mysql|redis" | while read container; do
    echo "停止容器: $container"
    sudo docker stop "$container" 2>/dev/null || true
done

# 清理未使用的容器
echo "清理未使用的容器..."
sudo docker container prune -f

# 清理未使用的镜像
echo "清理未使用的镜像..."
sudo docker image prune -f

# 清理构建缓存
echo "清理构建缓存..."
sudo docker builder prune -f

echo "Docker 资源清理完成"
echo ""

# 3. 检查并清理卡死的进程
echo "3. 检查卡死的进程..."
# 查找高内存占用的 Node.js 进程
echo "高内存占用的 Node.js 进程:"
ps aux | grep -E "node|npm" | grep -v grep | awk '{if($6>500000) print $2, $6/1024 "MB", $11}'

# 查找高 CPU 占用的进程
echo ""
echo "高 CPU 占用的进程:"
ps aux --sort=-%cpu | head -10

echo ""
echo "========================================"
echo "清理完成"
echo "========================================"

